---
title: clsServiceAppManagerBase
summary: API reference for clsServiceAppManagerBase.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Application
reference_type: embedded
---

# clsServiceAppManagerBase

`clsServiceAppManagerBase` is a second, lighter manager base for service/API-style callers. Unlike `AppManagerBase`, it shares no base type, owns no identity, and carries none of the access-classification or messaging behavior of the stateful manager style — the data portal is injected by the caller rather than built by the manager itself, and results are expected to be returned via a [ServiceResponse](ServiceResponse.md) rather than mutated manager state.

## Purpose
- Provides a minimal, stateless shell for service-style managers that receive an already-configured `IDataPortalInfo` instead of building their own connection.
- Establishes a parallel manager lineage to `AppManagerBase` for callers (service/API endpoints) that do not need the identity-bound lifecycle, access classification, or message buffer.

## Context
- Namespace: `SAIF.Application`
- Assembly/package: `SAIF.Application` (embedded, ProjectReference)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `DPI` | `Public ReadOnly Property As IDataPortalInfo` | Exposes the data-portal handle injected at construction time to derived service managers. |
| `New` | `Public Sub New(inDataPortalInfo As IDataPortalInfo)` | Requires an already-configured data portal — the service variant never builds its own connection, unlike `AppManagerBase.DataLayer`. |

### Protected members
| Member | Signature | Purpose |
| --- | --- | --- |
| `_dpi` | `Protected IDataPortalInfo` field | Backing field for `DPI`, available directly to derived service managers. |

## Behavioral notes
- This type carries no `AppSecurityRole`, `SecurityPrincipal`, or message buffer; consumers that need access classification or message accumulation must use `AppManagerBase` instead.*
- A caller building a service manager is responsible for supplying an already-built `IDataPortalInfo` (e.g. via `ApplicationDataAccess.CreateOraclePortal` / `CreateSQLServerPortal`) — this class performs no provisioning itself.

## Constraints and usage notes
- Because `clsServiceAppManagerBase` shares no base type with `AppManagerBase`, a consumer must pick one manager lineage per manager and cannot mix behavior across them.

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Application/Service Based/clsServiceAppManagerBase.vb`
- `SAIF.Application/ApplicationDataAccess.vb`
